package com.hjw.smsapp.util;

import android.content.Context;
import android.util.TypedValue;

public class DimensionUtil {
//    public static int dp2px(Context context, float dpValue) {
//        float scale = context.getResources().getDisplayMetrics().density;
//        return (int) (dpValue * scale + 0.5f);
//    }

    public static int dp2px(Context context, int dp) {
        return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics());
    }

    public static int px2dp(Context context, float pxValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    }

    public static int px2sp(Context context, float pxValue) {
        final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
        return (int) (pxValue / fontScale + 0.5f);
    }

//    public static int sp2px(Context context, float spValue) {
//        final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
//        return (int) (spValue * fontScale + 0.5f);
//    }

    public static int sp2px(Context context, int sp) {
        return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, context.getResources().getDisplayMetrics());
    }

    public static float cm2px(Context context, float cm) {
        return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, cm * 10, context.getResources().getDisplayMetrics());
    }

    public static int px2mm(Context context, float px) {
        float mmpx = 25.4f / context.getResources().getDisplayMetrics().xdpi;
        return (int) (px * mmpx + 0.5f);
    }
}
